#ifndef __CXX_0X_H__
#define __CXX_0X_H__

#ifdef _WIN32
#define _override override
#define _final final
#else
#define _override
#define _final
#endif //

#define transient

//G++'s std::min std::max std::abs has problem?
namespace gofgame {
	namespace common {
		template <typename T> static T _min(T a, T b) {
			return a < b ? a : b;
		}
		template <typename T> static T _max(T a, T b) {
			return a > b ? a : b;
		}
		template <typename T> static T _abs(T x) {
			return x > 0 ? x : -x;
		}
	}
}

#endif //__CXX_0X_H__